A modern machine (e.g., a fixed and mobile commercial machine, such as a construction machine, fixed engine system, marine-based machine, etc.) includes various systems for performing machine operations and for controlling the machine's engine. For example, a machine engine may manage or monitor different engine parameters, such as coolant temperature and oil pressure, using software modules. In order for the software modules to carry out their management or monitoring functions, the software modules may need to know a state of the engine. Examples of engine states include “running” and “cranking,” for example. Each of the software modules may determine the state of the engine using engine data, such as engine speed, for example. Although a particular software module may determine the state of the engine using the same data as another software module, each module may independently determine the state of the engine using different criteria.
For example, a temperature control module and an oil pressure control module might need to determine whether the engine is “running” or “cranking” to perform certain functions. However, upon receiving a particular RPM value of the engine (e.g., 400 RPM), the temperature control module may determine that the engine is “running,” while the oil pressure module may arrive at an different conclusion based on the same RPM value. This discrepancy may occur because the RPM threshold used by the modules may differ (e.g., it may be acceptable for the oil pressure control module to consider an RPM value between 300-500 as an indication that the engine is “running,” but the temperature control module may have a lower RPM range). Thus, discrepancies often occur when software modules independently determine the state of the engine using different criteria.
Furthermore, using different criteria to evaluate a state of the engine may reduce engine performance due to a lack of coordination and orchestration between sub-parts of an engine's control system architecture. For example, by having multiple software modules each making a determination as to the state of the engine, some engine systems (e.g., supervisory engine control systems) may each require complex connections to access necessary hardware (e.g., sensors providing engine data). Having multiple systems independently determine engine state requires extra processing resources to perform duplicative computations. Accordingly, the engine's control system architecture is unnecessarily complex from both a software and a hardware standpoint.
A vehicle integrated control system is described in U.S. Patent Application Publication No. 2004/0064220 A1 (the '220 publication) to Kobayashi, which published issued on Apr. 1, 2004. The '220 publication describes a vehicle integrated control system that includes a plurality of electronic control units coupled to an intra-vehicle communications network. The intra-vehicle communications network includes programs for controlling an operation of a plurality of functional elements of the vehicle and a vehicle coordinator for transmitting operation commands to the control programs. Although the system of the '220 publication may use a vehicle coordinator for transmitting operation commands, the system does not provide central functionality for determining engine state so that components do not independently determine engine state. Further, the system of the '220 publication does address the problem of engine state discrepancies that may occur between different components that each individually determine engine state. The disclosed embodiments are directed to overcoming one or more of the problems set forth above.